import { checkLogin, requireLogin, checkBeforeNavigate } from '@/utils/loginCheck.js'

/**
 * 登录检查混入
 * 在需要的页面中使用：mixins: [loginMixin]
 */
export default {
	methods: {
		// 检查登录状态
		$checkLogin(message) {
			return checkLogin(message)
		},

		// 需要登录的导航跳转
		$navigateWithAuth(url, message) {
			if (checkBeforeNavigate(url, message)) {
				uni.navigateTo({ url })
			}
		},

		// 需要登录的Tab切换
		$switchTabWithAuth(url, message) {
			if (checkBeforeNavigate(url, message)) {
				uni.switchTab({ url })
			}
		},

		// 包装需要登录的方法
		$requireLogin(func, message) {
			return requireLogin(func, message)
		},

		// 添加到购物车（需要登录）
		$addToCart(product) {
			if (!this.$checkLogin('添加购物车需要先登录')) {
				return
			}
			// 这里实现添加购物车的逻辑
			console.log('添加商品到购物车:', product)
			uni.showToast({
				title: '已添加到购物车',
				icon: 'success'
			})
		},

		// 收藏商品（需要登录）
		$addToFavorites(product) {
			if (!this.$checkLogin('收藏商品需要先登录')) {
				return
			}
			// 这里实现收藏的逻辑
			console.log('收藏商品:', product)
			uni.showToast({
				title: '已收藏',
				icon: 'success'
			})
		},

		// 立即购买（需要登录）
		$buyNow(product) {
			if (!this.$checkLogin('购买商品需要先登录')) {
				return
			}
			// 跳转到确认订单页面
			uni.navigateTo({
				url: '/pages/ConfirmOrder/ConfirmOrder?productId=' + product.id
			})
		}
	}
}
